package com.ruoyi.project.inspection.service.impl;

import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.framework.aspectj.lang.annotation.DataScope;
import com.ruoyi.project.inspection.domain.ViVehicleType;
import com.ruoyi.project.inspection.domain.ViVehicleTypeImg;
import com.ruoyi.project.inspection.mapper.ViVehicleTypeImgMapper;
import com.ruoyi.project.inspection.mapper.ViVehicleTypeMapper;
import com.ruoyi.project.inspection.service.IViVehicleTypeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 车辆类型Service业务层处理
 *
 * @author ruoyi
 * @date 2020-07-17
 */
@Service
public class ViVehicleTypeServiceImpl implements IViVehicleTypeService {
    @Autowired
    private ViVehicleTypeMapper viVehicleTypeMapper;

    @Autowired
    private ViVehicleTypeImgMapper imgMapper;

    /**
     * 查询车辆类型
     *
     * @param id 车辆类型ID
     * @return 车辆类型
     */
    @Override
    public ViVehicleType selectViVehicleTypeById(Long id) {
        return viVehicleTypeMapper.selectViVehicleTypeById(id);
    }

    /**
     * 查询车辆类型列表
     *
     * @param viVehicleType 车辆类型
     * @return 车辆类型
     */
    @Override
    @DataScope(deptAlias = "u")
    public List<ViVehicleType> selectViVehicleTypeList(ViVehicleType viVehicleType) {
        List<ViVehicleType> list = viVehicleTypeMapper.selectViVehicleTypeList(viVehicleType);
        for (ViVehicleType type : list) {
            List<ViVehicleTypeImg> imgs = imgMapper.selectViVehicleTypeImgByTypeId(type.getId());
            if (imgs.size() > 0) {
                type.setViVehicleTypeImgs(imgs);
            }
        }
        return list;
    }

    /**
     * 新增车辆类型
     *
     * @param viVehicleType 车辆类型
     * @return 结果
     */
    @Override
    public int insertViVehicleType(ViVehicleType viVehicleType) {
        viVehicleType.setCreateTime(DateUtils.getNowDate());
        long key = viVehicleTypeMapper.insertViVehicleType(viVehicleType);
        List<String> imgs = viVehicleType.getTypeImgList();
        for (String s : imgs) {
            ViVehicleTypeImg img = new ViVehicleTypeImg();
            img.setImageUrl(s);
            img.setVehicleTypeId(viVehicleType.getId());
            imgMapper.insertViVehicleTypeImg(img);
        }
        return (int) key;
    }

    /**
     * 修改车辆类型
     *
     * @param viVehicleType 车辆类型
     * @return 结果
     */
    @Override
    public int updateViVehicleType(ViVehicleType viVehicleType) {
        return viVehicleTypeMapper.updateViVehicleType(viVehicleType);
    }

    /**
     * 批量删除车辆类型
     *
     * @param ids 需要删除的车辆类型ID
     * @return 结果
     */
    @Override
    public int deleteViVehicleTypeByIds(Long[] ids) {
        return viVehicleTypeMapper.deleteViVehicleTypeByIds(ids);
    }

    /**
     * 删除车辆类型信息
     *
     * @param id 车辆类型ID
     * @return 结果
     */
    @Override
    public int deleteViVehicleTypeById(Long id) {
        return viVehicleTypeMapper.deleteViVehicleTypeById(id);
    }
}
